/* 
 * File:   Scene.h
 * Author: Elevator
 *
 * Created on July 14, 2013, 5:19 PM
 */

#ifndef DATA_SCENE_H
#define DATA_SCENE_H

#include "Common/Common.h"

#include "Creature.h"
#include "Player.h"
#include "Map.h"
#include "Camera.h"

namespace data {

	class Scene {
	public:
		Scene(
			std::string name,
			std::string description,
			const ICollection<Player>* players,
			const ICollection<const Creature*>* creatures,
			const Map* map,
			const Camera* camera );

		inline const std::string GetName( ) const {
			return _name;
		}

		inline const std::string GetDescription( ) const {
			return _description;
		}

		inline const ICollection<Player>* GetPlayers( ) const {
			return _players;
		}

		inline const ICollection<const Creature*>* GetCreatures( ) const {
			return _creatures;
		}

		inline const Map* GetMap( ) const {
			return _map;
		}

		inline const Camera* GetCamera( ) const {
			return _camera;
		}

	private:
		std::string _name;
		std::string _description;
		const ICollection<Player>* _players;
		const ICollection<const Creature*>* _creatures;
		const Map* _map;
		const Camera* _camera;
	};
}
#endif	/* SCENE_H */
